/**
 * Copyright(c) 2014 Xunton Solutions
 *
 * History:
 *   14-12-23 下午2:11 Created by dwzhang
 */
package com.jade.bss.beacon;

import java.util.List;

import com.jade.framework.base.criterion.Criteria;
import com.jade.framework.base.util.PagingList;

/**
 * Beacon设备型号管理数据接口。
 *
 * @author <a href="mailto:dwzhang@xunton.com">dwzhang</a> 
 * @version 1.0 14-12-23 下午2:11
 */
public interface BeaconModelDao
{
    /**
     * 添加型号。
     *
     * @param model 设备型号
     * @throws BeaconException 处理异常
     */
    public void addModel(BeaconModel model)
            throws BeaconException;

    /**
     * 修改型号信息。
     *
     * @param model 设备型号。
     * @throws BeaconException 处理异常
     */
    public void updateModel(BeaconModel model)
            throws BeaconException;

    /**
     * 获取型号信息。
     *
     * @param id 型号ID.
     * @return 型号信息
     * @throws BeaconException
     */
    public BeaconModel getModel(String id);

    /**
     * 删除型号信息。
     *
     * @param id 型号标识。
     * @throws BeaconException
     */
    public void removeModel(String id)
            throws BeaconException;

    /**
     * 根据条件列出Beacon型号.
     *
     * @param criteria 条件。
     * @return 型号列表。
     */
    public List<BeaconModel> listModel(Criteria criteria);

    /**
     * 根据条件分页列出Beacon型号.
     *
     * @param criteria 条件。
     * @return 型号列表。
     */
    public PagingList<BeaconModel> queryModel(Criteria criteria);
}
